package com.dxg.msns.music.mapper;

import com.dxg.msns.music.pojo.Music;
import com.dxg.msns.music.pojo.Playlist;
import com.dxg.msns.music.pojo.TypeStatistics;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;
@org.apache.ibatis.annotations.Mapper
public interface PlaylistMapper extends Mapper<Playlist> {

        // 添加歌单
        int insert(Playlist playlist);

        // 根据 ID 查询歌单
        Playlist selectById(String id);
        List<Playlist>selectByUserId(String userId);
        // 查询所有歌单
        List<Playlist> selectAll();

        // 更新歌单信息
        int update(Playlist playlist);

        // 删除歌单（连同关联歌曲一起删）
        int deletePlaylistById(String id);
        int  deletePlaylistMusicByPlaylistId(String id);
        // 插入一首歌到歌单
        int insertMusicToPlaylist(@Param("playlistId") String playlistId, @Param("musicId") String musicId);

        // 从歌单中移除一首歌
        int deleteMusicFromPlaylist(@Param("playlistId") String playlistId, @Param("musicId") String musicId);

        // 查询歌单中的所有歌曲ID
        List<String> selectMusicIdsByPlaylistId(String playlistId);

        // 模糊查询歌单，支持按歌单名称和描述进行查询
        List<Playlist> selectPlaylistsBySearch(@Param("searchKeyword") String searchKeyword);
}

